package com.sikaryofficial.backend.domain.dto.req;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.sikaryofficial.backend.annotation.SensitiveDeserializer;
import com.sikaryofficial.backend.domain.vo.EvaluateContentObj;
import com.sikaryofficial.common.core.constant.EvaluateTypeEnum;
import com.sikaryofficial.system.api.model.att.AttachmentResp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.List;

/**
 * 品牌口味评价对象 brand_taste_evaluate_t
 *
 * @author qinjinyuan
 * @date 2023-10-30
 */
@Getter
@Setter
@ToString
@ApiModel(value = "品牌口味评价请求入参", description = "品牌口味评价请求入参")
public class BrandTasteEvaluateReq {


    @ApiModelProperty(value = "评价ID", hidden = true)
    private Long evaluateId;
    /**
     * 品牌口味ID
     */
    @ApiModelProperty(value = "产品ID", example = "1242")
    private Long brandTasteId;

    /** 品牌编码 */
    @ApiModelProperty(value = "品牌编码")
    private String brandNo;

    @ApiModelProperty(value = "产品名称", example = "1242")
    private String productName;

    /** 型号 */
    @ApiModelProperty(value = "型号", example = "1242")
    private String model;

    /** 口味名称 */
    @ApiModelProperty(value = "口味名称", example = "1242")
    private String tasteName;

    /** 款式: style:disposable 一次性,cartridge 弹药筒,opentype 开放式 */
    @ApiModelProperty(value = "款式: style:disposable 一次性,cartridge 弹药筒,opentype 开放式", example = "cartridge")
    private String style;

    /**
     * 评价指标-json字段
     */
    @ApiModelProperty(value = "评价指标", example = "1242")
    private List<EvaluateContentObj> evaluateContent;

    /**
     * 综合评分(小数)
     */
    @ApiModelProperty(value = "综合评分", example = "1242")
    private BigDecimal compositeScore;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID",  hidden = true)
    private String userId;

    @ApiModelProperty(value = "评论图片附件", example = "1242")
    private List<AttachmentResp> attachmentList;
    /**
     * 评价内容
     */
    @ApiModelProperty(value = "评价内容", example = "1242")
    @JsonDeserialize(using = SensitiveDeserializer.class)
    private String remark;

    /**
     * 评价方式 ： 自助评价-evaluate 、 scan_code 扫描评价
     *
     * @see EvaluateTypeEnum
     */
    @ApiModelProperty(value = "评价方式:evaluate-自助评价;scan_code-扫码评价", example = "evaluate")
    private String evaluateType;

    /**
     * 扫描用的参数
     */
    @ApiModelProperty(value = "扫描参数", example = "p=xxxx")
    private String p;
}
